documen.links
可以得到所有的<a>
連結
//method 1 var allLinks = document.links; for (var i=0; i<allLinks.length; i++) { document.write(allLinks[i].href+"<BR/>"); }
document.links
也可以用另外一個通用函數getElementByTagName()
取代。
//method 2 var links = document.getElementsByTagName('a'); for(var i = 0; i< links.length; i++){ alert(links[i].href); }
下面程式碼會有甚麼結果,觀察href 在哪裡。
//method 2 (error) only for object properties ? //例如,如果urls是一個物件,則url 是urls的一個欄位? var urls=document.links; for (url in urls){ console.log(url.innerHTML); }
example
//demo // in google search r markdown pdf var x=document.getElementsByTagName("a"); for (var i=0;i< x.length;i++){ var url=x[i].href ; //innerHTML,outerHTML if(/\.pdf$/.test(url)){ console.log(url); } //var p=RegExp('*\.pdf').exec(); }
如果 match 方法找不到符合的項目,會傳回 null。 如果找到符合的項目,則 match 方法會傳回一個陣列,然後更新全域 RegExp 物件的屬性來反映符合的結果。
如果未設定全域旗標 (g),陣列的元素 0 會包含整個相符項目,而元素 1 至 n 則包含任何子相符項目。 此行為相當於不設定全域旗標的 exec 方法 (規則運算式)。 如果設定全域旗標,元素 0 至 n 就會包含所有的相符項目。
全域,例如 ("stri").match('/com/g')
全域搜尋'com'。
如果不是全域(內定):則傳回第一個找到的子字串。傳回的陣列有兩個屬性:input 和 index。 input 屬性包含整個搜尋的字串。 index 屬性包含相符子字串在整個搜尋字串中的位置。如下
["com", index: 22, input: "https://stackoverflow.com/"]
0:"com"
index:22
input:"https://stackoverflow.com/"
length:1
在下列程式碼中,說明了如何使用 match 方法。
var src = "azcafAJAC"; var re = /[a-c]/; var result = src.match(re); // 只找了第一個符合的,所以在陣列0號. document.write(result[0] + "<br/>"); // Now try the same match with the global flag. var reg = /[a-c]/g; result = src.match(reg); // The matches are in elements 0 through n. for (var index = 0; index < result.length; index++) { document.write ("submatch " + index + ": " + result[index]); document.write("<br />"); }
分別看下面程式的執行結果:
1)
【比較1】
var urls=document.links; for (i=0;i<3;i++){ d=urls[i].href.match('com'); console.log(d); console.log(urls[i].href.search('com')); }
結果
["com", index: 22, input: "https://stackoverflow.com/"]0: "com"index: 22input:
["com", index: 22, input: "https://stackoverflow.com/jobs?med=site-ui&ref=jobs-tab"]
【比較2】
var urls=document.links; for (i=0;i<3;i++){ d=urls[i].href.match('com')[0]; console.log(d); console.log(urls[i].href.search('com')); }
結果
com
22
com
22
var links = document.getElementsByTagName('a'); // Do this selection based on your table for(var count=0; count<links.length; count++) { var url = links[count].getAttribute('href'); if(url && url.endsWith('.pdf')) { links[count].dispatchEvent(new MouseEvent('click')); } }
note: chrome://plugins 關掉在chrome 中顯示pdf
在chrome snippet 中測試,OK
var downloadFile = function(sUrl) { var link = document.createElement('a'); link.href = sUrl; if (link.download !== undefined){ //Set HTML5 download attribute. This will prevent file from opening if supported. var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); link.download = fileName; } //Dispatching click event. if (document.createEvent) { var e = document.createEvent('MouseEvents'); e.initEvent('click' ,true ,true); link.dispatchEvent(e); return true; } // Force file download (whether supported by server). var query = '?download'; window.open(sUrl + query); } var allLinks = document.links; for (var i=0; i<allLinks.length; i++) { downloadFile(allLinks[i].href); }